<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use DB;

class WebconfgController extends Controller
{
   public function getIndex(){

        //查询数据库  按照姓名查询  并按照获取数字值进行分页
        $data = DB::table('tbl_webconfg') -> select() ->get();
        // dd($data);exit;
        //将网站信息压入session中
        session(
            ['webname'=>$data['0']['webname'],
            'status'=>$data['0']['status'],
            'logo'=>$data['0']['logo'],
            'keywords'=>$data['0']['keywords'],
            'description'=>$data['0']['description'],
            'copyright'=>$data['0']['copyright']
            ]);
        //对$request所有的值和数据库查询的结果$data进行传值
       
        return view('admin.confg.webconfg',['data'=>$data]);
   }

   public function getEdit($id){
        //查询数据库中对应id的第一条信息
        $data = DB::table('tbl_webconfg') -> where('id','=',$id) -> first(); 
        return view('/admin/confg/edit',['data'=>$data]);
    }

    public function postUpdate(Request $request){
        // dd($request->all());exit;
        // dd($request -> file('logo'));exit;
        $data = $request -> all();
        //先判断图片是否上传 进行上传图片的处理 缩放 160*160
        if(!empty($data['logo'])){
            //获取上传文件的后缀
            $ext = $request -> file('logo') -> getClientOriginalExtension();
            //随机生成一个文件前缀名字
            $filename = date('Ymd',time()).mt_rand(10000,99999);
            //前缀后缀拼接成最后新的文件名称
            $newfilename = $filename.'.'.$ext;
            //上传文件到指定目录
            $request -> file('logo') -> move('admin_assoc/images/',$newfilename);
            //获取上传文件的长宽
            $arr = getimagesize('admin_assoc/images/'.$newfilename);
            $width = $arr[0];
            $height = $arr[1];
            //根据指定大小来进行缩放处理
            self::suofang('admin_assoc/images/'.$newfilename,180,180,$pre = 'logo_');
            //缩放完成后删除上传的原图片
            unlink('admin_assoc/images/'.$newfilename);
            //最后需要存储到数据库的图片名字
            $logo = 'logo_'.$newfilename;
        
           }else{
            //将为对应的数据库图片查询出来
                $s = DB::table('tbl_webconfg')
                            ->where('id',$data['id'])
                            ->first();
                $logo = $s['logo'];
           }   

           // $data['goodstime'] = date('Y-m-d H:i:s',time());
           //将接受到的的数据修改进数据库
      
        $arr = $request -> except('_token','id');
        $arr['logo'] = $logo;
         // var_dump($arr);exit;
        $res = DB::table('tbl_webconfg') ->where('id',$request->input('id')) -> update($arr);  
        if($res){
            return redirect('/admin/confg/index') -> with('success','修改成功');
        }else{
            return back();
        }

       //进行判断 如果插入成功则进入到列表查看；如果失败则回到之前界面
    //    if($res){
    //         return redirect('/admin/config/list')->with('success','更新成功');
    //    }else{
    //         return back()->with('error','更新失败');
    //    }
        }

             /**
     * 等比缩放函数（以保存的方式实现）
     * @param string $picname 被缩放的处理图片源
     * @param int $maxx 缩放后图片的最大宽度
     * @param int $maxy 缩放后图片的最大高度
     * @param string $pre 缩放后图片名的前缀名
     * @return String 返回后的图片名称(带路径)；
     */
    static function suofang($picname,$maxx=126,$maxy=66,$pre="pic_")
    {
        $info = getimageSize($picname); //获取图片的基本信息
    
        $w = $info[0];//获取宽度
        $h = $info[1];//获取高度
        
        //获取图片的类型并为此创建对应图片资源    
        switch($info[2]){
            case 1: //gif
                $im = imagecreatefromgif($picname);
                break;
            case 2: //jpg
                $im = imagecreatefromjpeg($picname);
                break;
            case 3: //png
                $im = imagecreatefrompng($picname);
                break;
            default:
                die("图片类型错误！");
        }
        
        //计算缩放比例
            if(($maxx/$w)>($maxy/$h)){
                $b = $maxy/$h;
            }else{
                $b = $maxx/$w;
            }
        
        //计算出缩放后的尺寸
            $nw = floor($w*$b);
            $nh = floor($h*$b);
            
            //创建一个新的图像源(目标图像)
            $nim = imagecreatetruecolor($nw,$nh);
                
            //执行等比缩放
            imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);
            
            //输出图像（根据源图像的类型，输出为对应的类型）
            $picinfo = pathinfo($picname);//解析源图像的名字和路径信息
            $newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];
            switch($info[2]){
                case 1:
                    imagegif($nim,$newpicname);
                    break;
                case 2:
                    imagejpeg($nim,$newpicname);
                    break;
                case 3:
                    imagepng($nim,$newpicname);
                    break;
        }
            //释放图片资源
            imagedestroy($im);
            imagedestroy($nim);
            //返回结果
            
            return $newpicname;
    }
         
   
   
}
